﻿///   验证IP。
///   参数 v : IP地址
///   返回值 : true / false
function isIP(v)
{
	var r=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
	if(r.test(v)){
		if( RegExp.$1 >0 && RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
	}
	return false;
}
///   验证端口号。
///   参数 v : 端口号
///   返回值 : true / false
function portVerify(v)
{
	var r=/^(\d+)$/;
	if(r.test(v)){
		if(RegExp.$1>0 && RegExp.$1<=65535) return true;
	}
	return false;
}
///   正则验证字符串。
///   参数 v : 字符串
///   参数 r : 正则表达式
///   返回值 : true / false
function regExpVerify(v,r)
{
	return r.test(value);
}

//自定义验证函数 时间 密码
Ext.apply(Ext.form.VTypes, {
    ip:function (v)
    {
    	var r=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
    	if(r.test(v)){
    		if( RegExp.$1 > 0 && RegExp.$1 < 225 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256 ) 
    		{
    		    return true ;
    		}    		
    	}
    	return false;
    },
    ipText:'不合法的IP地址',
    
    loginname:function(v)
    {
        var r=/^[a-zA-Z]{1}([a-zA-Z0-9]|[.-_@]){1,19}$/ ;
        if(r.test(v))
        {
            return true ;    
        }    
        return false ;
    },
    loginnameText:'登录名长度在[2~20]个字符之间。要求以字母开头,不能为中文字符，登录名至少是两个字符。',
    
    numbertype:function(v)
    {
        var r=/[0-9]$/ ;
        if(r.test(v))
        {
            return true ;    
        }    
        return false ;
    },
    numbertypeText:'只能是数字类型',
    
    serviceport:function(v)
    {
        var r=/^(\d+)$/;
        if(r.test(v)){
        	if(RegExp.$1>0 && RegExp.$1<=65530) return true;
        }
        return false;
    },
    serviceportText:'不合法的端口。',
    
    mobile:function(v)
    {
        var r=/^[1][3,5,8][0-9]{9}$/; 
        if(r.test(v)){
        	return true;
        }
        return false;
    },
    mobileText:'手机格式不正确。',
    
    daterange: function(val, field) {
        var date = field.parseDate(val);
        
        var dispUpd = function(picker) {
          var ad = picker.activeDate;
          picker.activeDate = null;
          picker.update(ad);
        };
        
        if (field.startDateField){
          var sd = Ext.getCmp(field.startDateField);
          sd.maxValue = date;
          if (sd.menu && sd.menu.picker) {
            sd.menu.picker.maxDate = date;
            dispUpd(sd.menu.picker);
          }
        } else if (field.endDateField) {
          var ed = Ext.getCmp(field.endDateField);
          ed.minValue = date;
          if (ed.menu && ed.menu.picker) {
            ed.menu.picker.minDate = date;
            dispUpd(ed.menu.picker);
          }
        }
        return true;
    },
  
    password: function(val, field) {
      if (field.initialPassField) {
        var pwd = Ext.getCmp(field.initialPassField);
        return (val == pwd.getValue());
      }
      return true;
    },
    passwordText: '两次密码不一致。'
});